//
// Created by zhangJA on 2020/6/26.
//函数调用2：Pi=16*arctan(1/5)-4*arctan(1/239)
//其中：arctan x=x-x^3/3+x^5/5-x^7/7+...

#include <iostream>
using namespace std;
double arcTan(double x);

//主函数
int main()
{
    double a=16.0*arcTan(1/5.0);
    double b=4.0*arcTan(1/239.0);
    //注意：因为整数相除结果取整，如果写成1/5、1/239,结果就都是0
    cout<<"Pi="<<a-b<<endl;
    return 0;
}
//自制arctan()函数
double arcTan(double x)
{
    double sqr=x*x;
    double e=x;
    double r=0;
    int i=1;
    while (e/i>1e-15)//限定精度
    {
        double f=e/i;
        r=(i%4==1)?r+f:r-f;
        e=e*sqr;
        i+=2;
    }
    return r;
}
